Conventionally, a compression scheme is used to resolve the problem that digital video consumes large amounts of storage and transmission capacity. In a predetermined standard scheme such as MPEG-2 (Moving Pictures Experts Group 2), a digital video sequence is compressed into individual pictures, such as I-frames, P-frames, and B-frames. An I-frame is a frame constructed without reference to any other frames. A P-frame is predicted from (i.e., constructed with reference to a) preceding P-frame or I-frame. A B-frame is predicted from (i.e., constructed with reference to) one preceding reference frame and one following reference frame (i.e., from two P-frames, or from one I-frame and one P-frame). Predictive encoding introduces dependencies in the encoded data so that the compression ratio can be improved.
However, if an encoded video frame is lost during transmission or arrives late at a decoder, not only will the frame miss its respective display time, but the missed frame may prevent other frames depending upon it from being properly displayed. In the example above, if a P-frame cannot be decoded because a preceding I-frame or P-frame is lost, other subsequent frames dependent on that P-frame may be unable to be decoded as well.
In ISO/IEC 13818-2 section 6.1.1.1.1, a three buffer solution with two reference frames (I/P) and one auxiliary frame (B) is provided in accordance with the following rules. The order of coded frames in a bit-stream is referred to as the “coded order.” As shown in FIG. 1, in a sequence containing no B-frames, if the current frame in the coded order is an I-frame or P-frame, the next frame output to the display unit is the frame reconstructed from the previous I-frame or P-frame if one exists. If none exists, at the start of the sequence, no frame is output. When the end of the sequence is detected or the last coded frame in the sequence is removed from the buffer, the next output frame for the display unit is the final I-frame or P-frame. In this case, the coded order is the same as the display order.
FIG. 2 illustrates a scenario wherein B-frames are present in the sequence. In this scenario, an additional rule is applied: if the current frame in coded order is a B-frame, the next frame output to the display unit is the current frame reconstructed from a previously reconstructed B-frame. As shown in both FIG. 1 and FIG. 2, the decoder and the display unit share one frame period throughout the sequence. Thus, the decoder must have sufficient computation ability to meet this requirement. This can be difficult for MPEG-2 video decoders, particularly for HDTV applications.
Therefore, there is a need for decoding and displaying video frames simultaneously. Additionally, a method and apparatus that can not only maintain the anchor buffer position so as to easily reconstruct pictures, but also satisfy the display re-order requirement of ISO/IEC 13818-2 is desired.